package com.example.user.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 用户偏好设置表
 * </p>
 *
 * @author Scale AI Team
 * @since 2025-09-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("user_preferences")
public class UserPreferences implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 偏好ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 偏好角色类型
     */
    @TableField("preferred_character_type")
    private String preferredCharacterType;

    /**
     * 语音速度
     */
    @TableField("voice_speed")
    private BigDecimal voiceSpeed;

    /**
     * 语音音调
     */
    @TableField("voice_pitch")
    private BigDecimal voicePitch;

    /**
     * 语音音色：female/male/child/sunny
     */
    @TableField("voice_tone")
    private String voiceTone;

    /**
     * 语音语言：auto/Chinese/English/Mixed
     */
    @TableField("voice_language")
    private String voiceLanguage;

    /**
     * 是否开启自动情绪检测
     */
    @TableField("auto_emotion_detection")
    private Boolean autoEmotionDetection;

    /**
     * 隐私级别：1-标准，2-高，3-最高
     */
    @TableField("privacy_level")
    private Integer privacyLevel;

    /**
     * 是否开启通知
     */
    @TableField("notification_enabled")
    private Boolean notificationEnabled;

    /**
     * 语音通知开关
     */
    @TableField("voice_notification_enabled")
    private Boolean voiceNotificationEnabled;

    /**
     * 创建时间
     */
    @TableField("created_at")
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @TableField("updated_at")
    private LocalDateTime updatedAt;


}
